概述

dry 是一个代码辅助工具,主要提供代码生成功能,它可以分析您的实体,智能的帮助您生成相关的数据传输对象、数据库读写操作以及API接口。

它作为dotnet命令行工具提供,同时支持Web UI操作界面。

功能特性

  • 自带项目模板,快速创建解决方案
  • 基于实体模型的智能分析,了解用户的业务意图
  • 智能生成DTO文件,包括增加、更新、查询、列表等常用DTO
  • 智能生成数据操作及业务逻辑实现,包括常见的新增、更新、筛选功能
  • 生成部分测试代码
  • 生成控制器接口
  • 根据Swagger OpenApi生成用于Typescript的接口类型
  • 根据Swagger OpenApi生成用于Angular或Axios的请求服务
  • Angular基础CURD页面
  • 其他更多高级功能

对ASP.NET Core的支持

dry 命令工具可以帮助开发者根据实体模型(.cs文件)生成常用的代码模板,包括:

  • Dto文件,增加、更新、查询、列表等Dto文件
  • 仓储文件,数据仓储层代码
  • 控制器文件
  • Protobuf文件
  • 客户端请求服务

对Typescript的支持

对于前端,可以根据swagger OpenApi的json内容,生成请求所需要的代码(.ts),包括:

  • 请求服务,xxx.service.ts
  • 接口模型,xxx.ts

项目模板支持

从8.0开始,工具集成模板,可通过图形化界面直接创建新的解决方案!

目的和特点

发布该工具的目的是希望能够为其他开发者节省时间,避免或灵活的规避996,在至暗时刻寻求一些安慰。

最初,该工具仅仅是个人为了提高效率,避免DRY而开发的小功能,后来逐步的完善,与其他同事共同使用。之后经过多个团队的使用、反馈,经过多个版本的修复和完善,并添加了更多新功能,让其更具有实用性!

我们通过工具去生成一些重复性的代码,减少开发的重复性工作,减少因在理解和实施上的错误或失误产生的偏差。

我们相信并遵循一些最基本的原则:

基于实体

得益于C#良好的表现能力,工具通过分析用户定义的实体代码,能够了解其业务意图。

通过分析实体,我们可以:

  • 使用EF Core code first生成数据库结构。
  • 生成DTO
  • 生成基础的数据库实现
  • 生成基础的业务代码和接口
  • 生成API接口定义
  • 生成前端Typescript类型定义文件
  • 生成前端 请求后端接口服务

从而保持意图的一致性!

保持简单

为了保持简单,我们的做法是:

  • 提供一个命令行工具,让安装保持保持简单
  • 提供UI图形操作界面,让使用和操作简单
  • 提供项目模板源代码,让上手项目简单
  • 无任何再次封装的库,完全透明可见,让理解简单
  • 通过定义实体->代码生成->实现业务流程,让开发变得简单

通用性优先

每个人的时间和精力都是有限的,我们需要把时间和精力用在更具通用性的地方。为此,相比于其他工具或框架,我们将避免:

  • 添加额外的概念,如模块化、自动控制器等。
  • 基于其他开源项目再次封装各种类库,提供基于框架的功能。
  • 耦合过多的功能模块。